#
# Industrial I/O subsytem configuration
#

menuconfig IIO
	tristate "Industrial I/O support"
	depends on GENERIC_HARDIRQS
	help
	  The industrial I/O subsystem provides a unified framework for
	  drivers for many different types of embedded sensors using a
	  number of different physical interfaces (i2c, spi, etc). See
	  drivers/staging/iio/Documentation for more information.
if IIO
config IIO_ST_HWMON
	tristate "Hwmon driver that uses channels specified via iio maps"
	depends on HWMON
	help
	  This is a platform driver that in combination with a suitable
	  map allows IIO devices to provide  basic hwmon functionality
	  for those channels specified in the map.

config IIO_BUFFER
	bool "Enable buffer support within IIO"
	help
	  Provide core support for various buffer based data
	  acquisition methods.

if IIO_BUFFER

config IIO_SW_RING
       select IIO_TRIGGER
	tristate "Industrial I/O lock free software ring"
	help
	  Example software ring buffer implementation.  The design aim
	  of this particular realization was to minimize write locking
	  with the intention that some devices would be able to write
	  in interrupt context.

config IIO_KFIFO_BUF
	select IIO_TRIGGER
	tristate "Industrial I/O buffering based on kfifo"
	help
	  A simple fifo based on kfifo.  Use this if you want a fifo
	  rather than a ring buffer. Note that this currently provides
	  no buffer events so it is up to userspace to work out how
	  often to read from the buffer.

endif # IIO_BUFFER

config IIO_TRIGGER
	boolean "Enable triggered sampling support"
	help
	  Provides IIO core support for triggers.  Currently these
	  are used to initialize capture of samples to push into
	  ring buffers.  The triggers are effectively a 'capture
	  data now' interrupt.

config IIO_CONSUMERS_PER_TRIGGER
       int "Maximum number of consumers per trigger"
       depends on IIO_TRIGGER
       default "2"
       help
	This value controls the maximum number of consumers that a
	given trigger may handle. Default is 2.

source "drivers/staging/iio/accel/Kconfig"
source "drivers/staging/iio/adc/Kconfig"
source "drivers/staging/iio/addac/Kconfig"
source "drivers/staging/iio/cdc/Kconfig"
source "drivers/staging/iio/dac/Kconfig"
source "drivers/staging/iio/dds/Kconfig"
source "drivers/staging/iio/gyro/Kconfig"
source "drivers/staging/iio/impedance-analyzer/Kconfig"
source "drivers/staging/iio/imu/Kconfig"
source "drivers/staging/iio/light/Kconfig"
source "drivers/staging/iio/magnetometer/Kconfig"
source "drivers/staging/iio/meter/Kconfig"
source "drivers/staging/iio/resolver/Kconfig"
source "drivers/staging/iio/trigger/Kconfig"
#MPL
source "drivers/staging/iio/imu/inv_mpu/Kconfig"
source "drivers/staging/iio/inv_test/Kconfig"
source "drivers/staging/iio/grip/Kconfig"

config IIO_DUMMY_EVGEN
       tristate

config IIO_SIMPLE_DUMMY
       tristate "An example driver with no hardware requirements"
       help
	 Driver intended mainly as documentation for how to write
	 a driver. May also be useful for testing userspace code
	 without hardware.

if IIO_SIMPLE_DUMMY

config IIO_SIMPLE_DUMMY_EVENTS
       boolean "Event generation support"
       select IIO_DUMMY_EVGEN
       help
         Add some dummy events to the simple dummy driver.

config IIO_SIMPLE_DUMMY_BUFFER
       boolean "Buffered capture support"
       depends on IIO_KFIFO_BUF
       help
         Add buffered data capture to the simple dummy driver.

endif # IIO_SIMPLE_DUMMY

endif # IIO
